/**
 * 获取 数据 对象 当前 的 类型名称
 * @param {Object} a --数据对象
 * @param {String} type	--数据类型
 * @return {boolean | string}
 */
function toStringTypeCheck(a, type) {
  if (type == undefined) {
    return toString.call(a).slice(8, -1).toLowerCase();
  } else if (type.toLowerCase() == 'any') {
    return true;
  }
  // console.log(toString.call(a).slice(8, -1))
  return toString.call(a).slice(8, -1).toLowerCase() == type.toLowerCase();
}

/**
 * 验证 value 的类型 是否在 给定 limitStrArr 类型范围 内
 * @param {any} value obj[key] 的 值
 * @param {string[]} limitStrArr toStringTypeCheck 的 类型 数组
 * @returns
 */
function ValueLimitTypeCheck(value, limitStrArr) {
  for (let i = 0; i < limitStrArr.length; i++) {
    if (toStringTypeCheck(value, limitStrArr[i])) {
      return true;
    }
  }
  return false;
}

export { toStringTypeCheck, ValueLimitTypeCheck };
